﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace DicomLibrary.Parsing
{
    public abstract class DParser
    {
        public DTransferSyntax TransferSyntax;
        public BinaryReader BinaryReader;

        public abstract DValueRepresentation ParseNextValueRepresentation();
        public abstract DTag ParseNextTag();
        public abstract object ParseNextValue(DValueRepresentation valueRepresentation, int valueLength);
        public abstract int ParseNextValueLength(DValueRepresentation valueRepresentation);

        public DParser(DTransferSyntax transferSyntax, BinaryReader binaryReader)
        {
            this.TransferSyntax = transferSyntax;
            this.BinaryReader = binaryReader;
        }
        public DParser(BinaryReader binaryReader) : this(DTransferSyntax.ExplicitLittleEndian, binaryReader) { }
    }
}
